package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringDemoApplication.class, args);

        // 如果在 启动Idea 的时候 遇到 所创建的项目不是 项目的时候
        // 这个时候要告诉 Idea 这是一个 Maven 项目
        // 有一下两种解决方案:
        // 1.如果右侧有Maven选项, 刷新一下
        // 2. 在这个项目中 右键一下, 找到 Add FrameWork Support,
        //    点击, 并找到里面的Maven 框架, 添加Maven 支持就可以了
        //      第二步的注意事项: 创建项目时, 右下角会弹框: Load maven project 什么的, 选中就可以了

        //还有一种情况: 在 pom.xml文件中, 如果遇到 spring-boot-maven-plugin这个报红
        // 下载不下来的时候
        // 解决方法就是 : 尽量下载, 如果实在下不下来就直接把这一块代码个删掉,是不影响我们程序的执行
        // 因为 我们在创建项目的时候, 是基于模板创建的, spring 会自己给我们自带一些模板
        //  其中有的模板是我们用不到的

        // 第三个 问题, 是 控制台报出一个错误:
        // 显示: Java: 错误: 无效的源发行版: 17
        // 这个表示的是 使用的是 JDK 17
        // 因为 SpringBoot 创建超过 3.X 版本的时候默认是 JDK 17
        // 包括很多项目的版本都是创建JDK 17 的版本
        // 这时候 修改 JDK 的版本
        // 一共修改三个地方
        //  第一个是: pom.xml中的 <java.version>17</java.version> 版本, 要改成1.8
        //  第二个是: 在File里面 找到Project Structure,把SDK改成JDK 8
        //           还是 在Project Structure 中 找到 Modules 选项, 也设置成8
        // 第三个地方: 在Settings 中 搜索 Java Compiler 里面 也要选择 1.8
        // 修改这三个部分的前提就是 SpringBoot是 2.多的版本
        // 而我的这个 只有 3.多的版本, 所以 只能用JDK17


        // 第四个问题: 项目中导入的包报错了
        // 这个就是表示 找不到这个包
        // 解决方法., 就是 看一下 pom 文件,确认一下 jar包是否下载成功了, 并且加载到了项目中
        //  pom 文件 任何一处修改 都需要点击刷新

        // 第五个问题: 包下载不下来:
        // 第一步: 确认包 是否存在, 怎么确认, 复制一下, <artifactId>spring-boot-starter-parent</artifactId>
        //        里面的 内容,  去maven中央仓库查看对应的版本是否存在
        //  如果在 maven中央仓库找不到, 不代表没有, 真正的没有 是要去看 maven 仓库里面 https://repo1.maven.org/maven2/
        //  然后根据坐标一个一个去找
        //        <groupId>org.springframework.boot</groupId>
        //        <artifactId>spring-boot-starter-parent</artifactId>
        //        <version>3.1.8</version>
        // 其中 org.springframework.boot 这是 三个路径
        // 然后再继续找 spring-boot-starter-parent 这个路径
        // 里面就能看到版本号, 如果真的没有, 那就是真没有了
        // 这个仓库里面存放的就是全部的
        // 后面用习惯了就不查了
        // 第二步: 如果保存在, 多下载几次
        //  点击 刷新刷新刷新
        // 第三步: 如果下载很多次都下载不下来
        //       1) 那就要确认一下 是否配置了 国内源, 看 .m2文件 中的settings 文件里面 (在设置中找到 Maven 选项里面找到你配置的路径)
        //       2) 目录要全英文的, 不要存在中文, 如果存在中文, 就把这个路径里面的文件全部复制, 在创建一个新的.m2文件里面 , 复制进去
        //          在把idea 设置中的 Maven 里面的路径选择你刚才放置的路径
        //       3) 去删除本地仓库的 jar 包, 然后重新下载
        //          (意思: 下载不下来, 可能存在的原因是, 上次下载时,因为网络等问题, 导致jar 包只下载了一半 )
        //          本地仓库的一个地址就是 : D:\Maven\.m2\repository (这是我的本地仓库)
        //          其中 repository 里面 所有的jar 包都可以删掉, 但是不建议全部删掉
        //          所以在删除的时候只删除指定的就可以了, 比如 pom.xml 中 有一个下载不下来
        //          找本地仓库, 根据 呢个报错的 包 名  一步一步的查找 (一个.就代表一级路径)
        //          然后找到这个包, 直接删除
        //          删完之后继续去下载
        //        4) 如果这样操作之后 还是下载不下来, 那就隔一段时间再下
        // 如果这时候再次下载还是不全的, 那就有可能需要重复上述的工作,继续下载
        //     其中里面的错误还有一种: 那就是 在 idea 中 右边的Maven里面也发生了报错
        //      那就也需要重复上面的几个步骤


        // 第六个问题:
        // Spring 项目一运行 控制台乱码了
        // 解决方法, 就需要 配置 VM options
        // 再右上角运行左边呢个框中
        // 找到 Edit Configurations
        // 然后 在 里面的 Modify options选项中, 添加配置
        //  把 -Dfile.encoding=UTF-8 复制进去




        // 第二种创建 springboot 的方式
        // 使用网页办创建, spring.io
        // 选择的选项 就是 和 用 idea 创建的时候 是 一样的

        // 而在不管用哪一种方式 在创建之后, 会生成一些没有用的文件
        // 有 四个 文件 分别是 .mvn   HELP.md   mvnw   mvnw.cmd
        // 这四个文件是没有用的可以直接删掉

        // 删完之后 介绍一下目录
        // 第一个 .idea 文件, 里面就是 idea 相关的一些配置 (所以在提交代码的时候 idea 是不用提交的)
        // 第二个 src 文件, 是我们的一个 代码, 里面包含了两部分, 一个 是 main文件  一个是 test 文件
        // 其中 main 文件里面也是包含了很多 一个 是 java文件 一个是 resources 文件
        //   里面的 java 文件呢是指的我们的源代码, java程序代码就存放在这里
        //   里面的 resources 文件 是 配置文件, 也称为资源, 主要存放的是配置相关的代码
        //      里面也存放了一些文件, 一个 是 static 文件, 一个是templates文件,还有 application.properties 文件
        //      其中 static 文件里面放的是静态文件
        //      templates文件里面放的是 模板 (放的是与页面相关的)
        //      还有一个文件 是 application.properties 文件, 里面存放的是spring boot项目的配置文件 , 非常重要!!.
        // 然后就是 test 文件, 里面存放的是一些测试代码, 注意这里放的是 开发人员的测试代码, 与测试人员无关
        // (作为一名开发人员, 需要对自己的代码质量负责, 不能完全依赖测试QA(测试人员),
        // 功能开发之后呢, 需要先自测,自测通过才交给测试人员
        // 要想测试哪一个文件呢, 就需要再这个test里面新建一个文件)
        // 第三个 target 文件, 里面就是我们编译的一个代码,target 是生成的, 没有用, 再maven里面点击 clean 删除了就好了
        // 第四个 pom.xml 文件 是maven 配置文件

        // 虽然这是一些目录, 但是还应该有一些注意事项
        // src 里面的 java 和 test 里面的 java 文件 分别是蓝色的 和绿色的
        // 要注意, 在创建项目的时候一定要保证这两个文件的颜色是对的, 不是这两个颜色是不行的
        // 如果不是呢, 就需要右键点击这个Java文件, 找到 Mark Directory as 里面 选中 Sources Root
        //          那么在 test 文件中呢, 也是右键点击Java 文件, 也是找到 Mark Directory as 里面 选中 Test Sources Root
        //          当然也可以在 Modules 里面设置
        // 所以 只改一个名是不行的
        // 设置完之后 maven 才知道我们的目录是干什么的



        // spring 难就难在环境配置上, 并不是代码上



        // 然后接下来看看运行方面的
        // 在创建SpringBoot 的时候呢 , 创建好之后会自动生成一个 Java.class文件,
        // 如果不喜欢这个名字的话 直接重命名就好, 建议不要打开文件修改文件名
        // 修改文件名字的 快捷键 : shift + f6
        // 通过idea提供的方式修改文件名的好处:
        // 1. idea 会帮我们查找相关的代码
        // 2. idea会进行提示
        // 3. 强制修改的话, idea 会把相关连的文件名相关的代码全部修改.

        // 接下来开始运行
        // 在启动日志里面会观察到 有 Tomcat 8080:什么的
        // 说明 Spring 里面自己配置了Tomcat, 并且Tomcat 端口号是 8080
        // 并且tomcat的版本是 10. 多的版本

        // 这里面运行之后 如果报404错误
        // 那就有可能是 代码错误 或者 路径错误, 这就和 之前学的 Tomcat 不一样了


        // tomcat 启动失败 的错误, 相比之前就会很少了
        // 那么呢 怎么看错误日志: 第一步 先看结论, 源于i你 下面有描述
        //                          错误日志的看法 主要是 从下往上看
        //                          不是一行一行的看, 是一段一段的看
        //                          而是从最下面的一段的第一行开始看(整体先过一遍, 然后看第一行)
        //                          之后再看上一段的第一行




    }

}
